package com.springboot.bigevent.anno;

import com.springboot.bigevent.validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;

@Documented//元注解

@Constraint(
        validatedBy = {StateValidation.class}
)//指定验证器（注解的规则）

@Target({ElementType.METHOD, ElementType.FIELD})//元注解，声明该注解用在何处（state只用在属性上）
@Retention(RetentionPolicy.RUNTIME)//元注解，声明注解的保留时间（此处保留到运行时）

public @interface State {
    //提供校验失败后提示信息
    String message() default "state参数值只能为：已发布或者是草稿 ";
    //指定分组
    Class<?>[] groups() default {};
    //负载，调用到state注解附件信息
    Class<? extends Payload>[] payload() default {};
}
